/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cn.edu.thu.laud.hive.metastore.model;

import javax.jdo.annotations.Discriminator;
import javax.jdo.annotations.DiscriminatorStrategy;
import javax.jdo.annotations.Index;
import javax.jdo.annotations.Inheritance;
import javax.jdo.annotations.InheritanceStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;

/**
 * 
 * @author zhuoan
 *
 */
@PersistenceCapable(table="ROLES", detachable="true")
@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
@Discriminator(strategy=DiscriminatorStrategy.VALUE_MAP, value="ROLES")
public class MRole extends MBase{
	
  @Persistent
  @Index
  private String roleName;
  @Persistent
  private int createTime;
  @Persistent
  private String ownerName;

  public MRole() {
  }

  public MRole(String roleName, int createTime, String ownerName) {
    super();
    this.roleName = roleName;
    this.createTime = createTime;
    this.ownerName = ownerName;
  }
  
  public org.apache.hadoop.hive.metastore.model.MRole convertToHiveModel(){
	  org.apache.hadoop.hive.metastore.model.MRole role = new org.apache.hadoop.hive.metastore.model.MRole();
	  
	  role.setCreateTime(createTime);
	  role.setOwnerName(ownerName);
	  role.setRoleName(roleName);
	  return role;
  }

  /**
   * @return role name
   */
  public String getRoleName() {
    return roleName;
  }

  /**
   * @param roleName
   */
  public void setRoleName(String roleName) {
    this.roleName = roleName;
  }

  /**
   * @return create time
   */
  public int getCreateTime() {
    return createTime;
  }

  /**
   * @param createTime
   *          role create time
   */
  public void setCreateTime(int createTime) {
    this.createTime = createTime;
  }

  /**
   * @return the principal name who created this role
   */
  public String getOwnerName() {
    return ownerName;
  }

  public void setOwnerName(String ownerName) {
    this.ownerName = ownerName;
  }

  @Override
  public String toString() {
	return "MRole [roleName=" + roleName + ", createTime=" + createTime
			+ ", ownerName=" + ownerName + "]";
  }
  
  

}

